/*
 * @Author: huangtianyang 916072572@qq.com
 * @Date: 2023-01-13 15:14:15
 * @LastEditors: huangtianyang
 * @LastEditTime: 2023-08-02 18:18:23
 * @FilePath: \cxl-h5\src\apis\order\order.ts
 */
import { request as axios } from '@/axios/index'

interface OrderParams {
    driveLicense: string //行驶证图片key
    openId: string //微信用户openId 通过微信用户信息获取接口获得 （支付类型为1的时候必传）
    payType: number //支付类型(1.微信；2.储值扣费；3.储值赠送，4.系统赠送)
    vin: string //vin码
    productType: number //产品类型(1.车况-出险；2.车况-维保车况)
    vinParseId?: string //vin码解析id
    plateNo?: string //号牌号码
    productId: string //报告单价Id
    reportId?: string //报告id
    systemToken?: string
}

/**
 * 创建订单 微信支付
 * @param driveLicense: string //行驶证图片key
 * @param openId: string //微信用户openId 通过微信用户信息获取接口获得 （支付类型为1的时候必传）
 * @param payType: number //支付类型(1.微信；2.储值扣费；3.储值赠送，4.系统赠送)
 * @param vin: string //vin码
 * @param productType number //产品类型(1.车况-出险；2.车况-维保车况)
 * @param vinParseId?: string //vin码解析id
 * @param plateNo?: string //号牌号码
 * @param productId: string //报告单价Id
 * @param reportId?: string //报告id
 * @returns
 */
export const createOrder = (data: OrderParams, iswx: boolean) => {
    return axios({
        method: 'post',
        url: iswx ? '/api/mall/portal/report/order/create/wx' : '/api/mall/portal/report/order/create/store',
        data
    })
}

/**
 * 获取产品价格
 * @returns
 */
export const getProdctMoney = () => {
    return axios({
        method: 'get',
        url: '/api/mall/product/config/findEnableProducts'
    })
}

/**
 * 取消支付
 * @param orderId
 * @returns
 */
export const cancelPay = (orderId: string) => {
    return axios({
        method: 'get',
        url: '/api/mall/portal/report/order/cancel/wx',
        params: { orderId }
    })
}

/**
 * 未支付订单重新支付
 * @param openId
 * @param orderId
 * @param payType //支付类型(1.微信；2.储值扣费；3.储值赠送，4.系统赠送)
 * @returns
 */
export const orderRrepay = (openId: string, orderId: string, payType: number) => {
    return axios({
        method: 'post',
        url: '/api/mall/portal/report/order/query/create/wx',
        data: {
            openId,
            orderId,
            payType
        }
    })
}
